home *** CD-ROM | disk | FTP | other *** search
/ ftp2.jacobs.com / 2015.02.ftp2.jacobs.com.tar / ftp2.jacobs.com / pub / iPass / Open Mobile-V2.3.0-11624-V9.000.msi / Data1.cab / _223AA52D1A9207699679EC424ECDA5A4 < prev    next >
Extensible Markup Language  |  2012-10-24  |  28KB  |  626 lines

  1. <?xml version="1.0"?>
  2.  
  3. <xsl:stylesheet version="1.0"
  4.     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  5.     xmlns:ex="http://www.microsoft.com/networking/WLAN/profile/v1"
  6.       xmlns:onex="http://www.microsoft.com/networking/OneX/v1"
  7.     xmlns:host= "http://www.microsoft.com/provisioning/EapHostConfig"
  8.     xmlns:eapCommon="http://www.microsoft.com/provisioning/EapCommon"
  9.     xmlns:baseEap="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1"
  10.     xmlns:eapTls="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV1"
  11.     xmlns:msPeap="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV1"
  12.     xmlns:msChapV2="http://www.microsoft.com/provisioning/MsChapV2ConnectionPropertiesV1"
  13.     xmlns:msChapV3="http://www.microsoft.com/provisioning/MsChapV3ConnectionPropertiesV1"
  14.       xmlns:eapttls="http://schemas.securew2.com/eapconfig/eap-ttls/v0"
  15.     xmlns:msPeapv2="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2"
  16.     xmlns:nw="http://iPassNativeWiFi">
  17.  
  18.  
  19.   <xsl:output
  20.        method = "xml"
  21.        version = "nmtoken"
  22.        encoding = "string"
  23.        omit-xml-declaration = "no"
  24.        cdata-section-elements = "qnames"
  25.        indent = "yes"
  26.        media-type = "string"/>
  27.  
  28.  
  29.  
  30.   <!-- Transformations -->
  31.   <xsl:template match='ex:name/text()'>
  32.     <xsl:value-of select="nw:GetProfilename()"/>
  33.   </xsl:template>
  34.  
  35.   <xsl:template match='ex:SSID/ex:name/text()'>
  36.     <xsl:value-of select="nw:GetSSID()"/>
  37.   </xsl:template>
  38.  
  39.   <xsl:template match='ex:nonBroadcast/text()'>
  40.     <xsl:value-of select="nw:GetNonbroadcast()"/>
  41.   </xsl:template>
  42.  
  43.   <xsl:template match='ex:connectionMode/text()'>
  44.     <xsl:text>manual</xsl:text>
  45.   </xsl:template>
  46.  
  47.   <xsl:template match="ex:authEncryption/ex:authentication/text()">
  48.     <xsl:apply-templates/>
  49.     <xsl:value-of select="nw:GetAuthentication()"/>
  50.   </xsl:template>
  51.  
  52.   <xsl:template match="ex:authEncryption/ex:encryption/text()">
  53.     <xsl:apply-templates/>
  54.     <xsl:value-of select="nw:GetEncryption()"/>
  55.   </xsl:template>
  56.  
  57.  
  58.   <xsl:template match="ex:tempElement">
  59.     <xsl:choose>
  60.       <xsl:when test="nw:GetLogonMode() = 'preLogon'">
  61.         <xsl:element name="PMKCacheMode" namespace="http://www.microsoft.com/networking/WLAN/profile/v1">enabled</xsl:element>
  62.         <xsl:element name="PMKCacheTTL" namespace="http://www.microsoft.com/networking/WLAN/profile/v1">720</xsl:element>
  63.         <xsl:element name="PMKCacheSize" namespace="http://www.microsoft.com/networking/WLAN/profile/v1">128</xsl:element>
  64.         <xsl:element name="preAuthMode" namespace="http://www.microsoft.com/networking/WLAN/profile/v1">enabled</xsl:element>
  65.         <xsl:element name="preAuthThrottle" namespace="http://www.microsoft.com/networking/WLAN/profile/v1">3</xsl:element>
  66.       </xsl:when>
  67.     </xsl:choose>
  68.   </xsl:template>
  69.  
  70.   <xsl:template match="onex:OneX/node()">
  71.     <xsl:if test="nw:GetOSMajorVersion() > 5 and nw:GetLogonMode() = 'postLogon'">
  72.       <xsl:element name="authMode" namespace="http://www.microsoft.com/networking/OneX/v1">
  73.         <xsl:value-of select="nw:GetAuthMode()"/>
  74.       </xsl:element>
  75.     </xsl:if>
  76.  
  77.  
  78.     <xsl:choose>
  79.       <xsl:when test="nw:GetLogonMode() = 'preLogon'">
  80.         <xsl:element name="cacheUserData" namespace="http://www.microsoft.com/networking/OneX/v1">true</xsl:element>
  81.         <xsl:element name="heldPeriod" namespace="http://www.microsoft.com/networking/OneX/v1">1</xsl:element>
  82.         <xsl:element name="authPeriod" namespace="http://www.microsoft.com/networking/OneX/v1">120</xsl:element>
  83.         <xsl:element name="startPeriod" namespace="http://www.microsoft.com/networking/OneX/v1">1</xsl:element>
  84.         <xsl:element name="maxStart" namespace="http://www.microsoft.com/networking/OneX/v1">3</xsl:element>
  85.         <xsl:element name="maxAuthFailures" namespace="http://www.microsoft.com/networking/OneX/v1">3</xsl:element>
  86.         <xsl:element name="authMode" namespace="http://www.microsoft.com/networking/OneX/v1">machineOrUser</xsl:element>
  87.         <xsl:element name="singleSignOn" namespace="http://www.microsoft.com/networking/OneX/v1">
  88.           <xsl:element name="type" namespace="http://www.microsoft.com/networking/OneX/v1">preLogon</xsl:element>
  89.           <xsl:element name="maxDelay" namespace="http://www.microsoft.com/networking/OneX/v1">10</xsl:element>
  90.           <xsl:element name="allowAdditionalDialogs" namespace="http://www.microsoft.com/networking/OneX/v1">true</xsl:element>
  91.           <xsl:element name="maxDelayWithAdditionalDialogs" namespace="http://www.microsoft.com/networking/OneX/v1">30</xsl:element>
  92.           <xsl:element name="userBasedVirtualLan" namespace="http://www.microsoft.com/networking/OneX/v1">false</xsl:element>
  93.         </xsl:element>
  94.       </xsl:when>
  95.     </xsl:choose>
  96.     <xsl:copy>
  97.       <xsl:apply-templates/>
  98.     </xsl:copy>
  99.  
  100.   </xsl:template>
  101.  
  102.   <xsl:template match="host:EapHostConfig" >
  103.     <xsl:copy>
  104.       <xsl:apply-templates/>
  105.       <xsl:element name="EapMethod" xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
  106.         <xsl:element name="eapCommon:Type">
  107.           <xsl:value-of select="nw:GetOuterTunnelEapMethod()"/>
  108.         </xsl:element>
  109.  
  110.         <xsl:element name="eapCommon:AuthorId">
  111.           <xsl:value-of select="nw:GetAuthorID()"/>
  112.         </xsl:element>
  113.       </xsl:element>
  114.  
  115.       <xsl:choose>
  116.         <xsl:when test="nw:GetUseConfigBlob() = 'true'">
  117.             <xsl:call-template name="ConfigBlobTemplate" />
  118.         </xsl:when>
  119.         <xsl:otherwise>
  120.             <xsl:call-template name="XmlConfigTemplate" />
  121.         </xsl:otherwise>        
  122.       </xsl:choose>
  123.  
  124.     </xsl:copy>
  125.   </xsl:template>
  126.  
  127.   <xsl:template name="XmlConfigTemplate">
  128.     <xsl:element name="Config" xmlns="http://www.microsoft.com/provisioning/EapHostConfig"
  129.                                       xmlns:baseEap="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1"
  130.                                     xmlns:msPeap="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV1"
  131.                                     xmlns:msChapV2="http://www.microsoft.com/provisioning/MsChapV2ConnectionPropertiesV1"
  132.                                     xmlns:msChapV3="http://www.microsoft.com/provisioning/MsChapV3ConnectionPropertiesV1"
  133.                                     xmlns:eapTls="http://www.microsoft.com/provisioning/EapTlsConnectionPropertiesV1">
  134.  
  135.       <!-- TLS -->
  136.       <xsl:if test="nw:GetOuterTunnelEapMethod() = '13'">
  137.       <xsl:choose>
  138.         <xsl:when test="nw:GetCertLocation() = 'SmartCard' and nw:GetOSMajorVersion() >= 6 and nw:GetOSMinorVersion() >= 2">
  139.           <xsl:call-template name="iEapTlsTemplate" />
  140.         </xsl:when>
  141.         <xsl:otherwise>
  142.           <xsl:call-template name="msEapTlsTemplate" />
  143.         </xsl:otherwise>
  144.       </xsl:choose>
  145.       </xsl:if>
  146.       <!-- End of TLS -->
  147.  
  148.       <!-- PEAP-MSCHAPv2 and PEAP-TLS -->
  149.       <xsl:if test="nw:GetOuterTunnelEapMethod()  = '25' and (nw:GetInnerTunnelEapMethod()  = '26' or nw:GetInnerTunnelEapMethod()  = '13')">
  150.         <xsl:if test="nw:GetAuthMethod()  = ''">
  151.           <xsl:element name="baseEap:Eap">
  152.             <xsl:element name="baseEap:Type">
  153.               <xsl:value-of select="nw:GetOuterTunnelEapMethod()"/>
  154.             </xsl:element>
  155.             <xsl:element name="msPeap:EapType">
  156.               <xsl:if test="nw:GetVerifyServerCertificate()  = 'true'">
  157.                 <xsl:element name="msPeap:ServerValidation">
  158.                   <xsl:element name="msPeap:DisableUserPromptForServerValidation">true</xsl:element>
  159.                   <xsl:if test="nw:GetServerNames()  != ''">
  160.                     <xsl:element name="msPeap:ServerNames">
  161.                       <xsl:value-of select="nw:GetServerNames()"/>
  162.                     </xsl:element>
  163.                   </xsl:if>
  164.                   <xsl:call-template name="loop">
  165.                     <xsl:with-param name="maxcount" select="nw:GetCategoryValuesCount(nw:GetCategory())"/>
  166.                     <xsl:with-param name="incriment-factor" select="1"/>
  167.                     <xsl:with-param name="initial-value" select="0"/>
  168.                   </xsl:call-template>
  169.                 </xsl:element><!--End of ServerValidation-->
  170.               </xsl:if>
  171.  
  172.               <xsl:element name="msPeap:FastReconnect">
  173.                 <xsl:value-of select="nw:GetFastReconnect()"/>
  174.               </xsl:element>
  175.               <xsl:element name="msPeap:InnerEapOptional">0</xsl:element>
  176.               <xsl:element name="baseEap:Eap">
  177.                 <xsl:element name="baseEap:Type">
  178.                   <xsl:value-of select="nw:GetInnerTunnelEapMethod()"/>
  179.                 </xsl:element>
  180.  
  181.                 <!-- Inner TLS-->
  182.                 <xsl:if test="nw:GetInnerTunnelEapMethod()  = '13'">
  183.                   <xsl:element name="eapTls:EapType">
  184.                     <xsl:element name="eapTls:CredentialsSource">
  185.                       <xsl:choose>
  186.                         <xsl:when test="nw:GetCertLocation() = 'SmartCard'">
  187.                           <xsl:element name="eapTls:SmartCard"></xsl:element>
  188.                         </xsl:when>
  189.                         <xsl:otherwise>
  190.                           <xsl:element name="eapTls:CertificateStore"></xsl:element>
  191.                         </xsl:otherwise>
  192.                       </xsl:choose>
  193.                     </xsl:element><!--end of CredentialsSource Element-->
  194.                     <xsl:element name="eapTls:DifferentUsername">false</xsl:element>
  195.                   </xsl:element><!--end of EapType-->
  196.                 </xsl:if><!--End of Inner TLS-->
  197.  
  198.                 <!-- MSCHAPv2-->
  199.                 <xsl:if test="nw:GetInnerTunnelEapMethod()  = '26'">
  200.                   <xsl:element name="msChapV2:EapType">
  201.                     <xsl:element name="msChapV2:UseWinLogonCredentials">
  202.                       <xsl:value-of select="nw:GetWindowsLogonCreds()"/>
  203.                     </xsl:element>
  204.                   </xsl:element>
  205.                 </xsl:if><!-- End of MSCHAPv2-->
  206.               </xsl:element><!--end of baseEap:Eap element-->
  207.               <xsl:element name="msPeap:EnableQuarantineChecks">false</xsl:element>
  208.               <xsl:element name="msPeap:RequireCryptoBinding">false</xsl:element>
  209.               <xsl:element name="msPeap:PeapExtensions">
  210.                 <xsl:element name="msPeapv2:PerformServerValidation">
  211.                   <xsl:value-of select="nw:GetVerifyServerCertificate()"/>
  212.                 </xsl:element>
  213.                 <xsl:element name="msPeapv2:IdentityPrivacy">
  214.                   <xsl:element name="msPeapv2:EnableIdentityPrivacy">
  215.                     <xsl:value-of select="nw:GetIdentityPrivacy()"/>
  216.                   </xsl:element>
  217.                   <xsl:element name="msPeapv2:AnonymousUserName">
  218.                     <xsl:value-of select="nw:GetOuterTunnelIdentity()"/>
  219.                   </xsl:element>
  220.                 </xsl:element>
  221.               </xsl:element><!-- End of PeapExtensions-->
  222.             </xsl:element><!--End of msPeap:EapType-->
  223.           </xsl:element><!--end of baseEap:Eap element-->
  224.         </xsl:if>
  225.         <xsl:if test="nw:GetAuthMethod()  = 'EAP'">
  226.           <xsl:element name="eapttls:eap-ttls">
  227.             <xsl:element name="eapttls:Configuration" >
  228.               <xsl:element name="eapttls:Connection">
  229.                 <xsl:element name="eapttls:UseAlternateOuterIdentity">true</xsl:element>
  230.                 <xsl:element name="eapttls:UseAnonymousOuterIdentity">false</xsl:element>
  231.                 <xsl:element name="eapttls:AlternateOuterIdentity">
  232.                   <xsl:value-of select="nw:GetOuterTunnelIdentity()"/>
  233.                 </xsl:element>
  234.                 <xsl:element name="eapttls:UseSessionResumption">true</xsl:element>
  235.               </xsl:element>
  236.               <xsl:element name="eapttls:ServerValidation">
  237.                 <xsl:element name="eapttls:VerifyServerCertificate">
  238.                   <xsl:value-of select="nw:GetVerifyServerCertificate()"/>
  239.                 </xsl:element>
  240.                 <xsl:if test="nw:GetServerNames()  != ''">
  241.                   <xsl:element name="eapttls:ServerName">
  242.                     <xsl:value-of select="nw:GetServerNames()"/>
  243.                   </xsl:element>
  244.                 </xsl:if>
  245.                 <xsl:element name="eapttls:TrustedRootCA">
  246.                   <xsl:call-template name="loop">
  247.                     <xsl:with-param name="maxcount" select="nw:GetCategoryValuesCount(nw:GetCategory())"/>
  248.                     <xsl:with-param name="incriment-factor" select="1"/>
  249.                     <xsl:with-param name="initial-value" select="0"/>
  250.                   </xsl:call-template>
  251.                 </xsl:element>
  252.               </xsl:element>
  253.               <xsl:element name="eapttls:Authentication">
  254.                 <xsl:element name="eapttls:AuthenticationMethod">
  255.                   <xsl:value-of select="nw:GetAuthMethod()"/>
  256.                 </xsl:element>
  257.                 <xsl:element name="eapttls:EapConfig">
  258.                   <xsl:if test="nw:GetAuthMethod()  = 'EAP'">
  259.                     <xsl:element name="eapttls:EapHostConfig">
  260.                       <xsl:element name="eapttls:EapMethod">
  261.                         <xsl:element name="eapttls:Type">6</xsl:element>
  262.                         <xsl:element name="eapttls:VendorId">0</xsl:element>
  263.                         <xsl:element name="eapttls:VendorType">0</xsl:element>
  264.                         <xsl:element name="eapttls:AuthorId">
  265.                           <xsl:value-of select="nw:GetAuthorID()"/>
  266.                         </xsl:element>
  267.                       </xsl:element>
  268.                       <xsl:element name="eapttls:Config">
  269.                         <xsl:element name="eapttls:Identity">
  270.                           <xsl:value-of select="nw:GetInnerTunnelIdentity()"/>
  271.                         </xsl:element>
  272.                       </xsl:element>
  273.                     </xsl:element>
  274.                   </xsl:if>
  275.                 </xsl:element>
  276.               </xsl:element>
  277.               <xsl:element name="eapttls:UserAccount">
  278.                 <xsl:element name="eapttls:PromptUser">true</xsl:element>
  279.                 <xsl:element name="eapttls:UseUserCredentialsForComputer">false</xsl:element>
  280.               </xsl:element>
  281.               <xsl:element name="eapttls:Advanced">
  282.                 <xsl:element name="eapttls:AllowNewConnections">false</xsl:element>
  283.                 <xsl:element name="eapttls:UseEmptyOuterIdentity">false</xsl:element>
  284.               </xsl:element>
  285.             </xsl:element>
  286.           </xsl:element>
  287.         </xsl:if>
  288.       </xsl:if>
  289.       
  290.       <!-- PEAP-GTC schema generator -->
  291.       <xsl:if test="nw:GetOuterTunnelEapMethod()  = '25' and nw:GetInnerTunnelEapMethod()  = '6'" >
  292.  
  293.         <iEapPeap xsi:noNamespaceSchemaLocation="iEapPeap.xsd" xmlns="" xmlns:n1="http://www.altova.com/samplexml/other-namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  294.           <AllowFastReconnect>
  295.             <xsl:value-of select="nw:GetFastReconnect()"/>
  296.           </AllowFastReconnect>
  297.           <EncryptionLabelVersion>
  298.             <xsl:value-of select="nw:GetEncryptionLabelVersion()"/>
  299.           </EncryptionLabelVersion>
  300.  
  301.           <xsl:call-template name="OMServerValidationTemplate"/>
  302.  
  303.           <InnerEapMethod>
  304.             <xsl:if test="nw:GetInnerTunnelEapMethod()  = '6'">
  305.               <xsl:call-template name="iEapGtcTemplate" />
  306.             </xsl:if>
  307.           </InnerEapMethod>
  308.         </iEapPeap>
  309.  
  310.       </xsl:if>
  311.  
  312.       <!-- EAP-FAST schema generator -->
  313.       <xsl:if test="nw:GetOuterTunnelEapMethod()  = '43'">
  314.         <xsl:if test="nw:GetInnerTunnelEapMethod()  = '26' or nw:GetInnerTunnelEapMethod()  = '6' or nw:GetInnerTunnelEapMethod()  = '13'" >
  315.  
  316.           <iEapFast xsi:noNamespaceSchemaLocation="iEapFast.xsd" xmlns="" xmlns:n1="http://www.altova.com/samplexml/other-namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  317.             <AllowFastReconnect>
  318.               <xsl:value-of select="nw:GetFastReconnect()"/>
  319.             </AllowFastReconnect>
  320.  
  321.             <xsl:if test="nw:GetIdentityPrivacy() = 'true'">
  322.               <xsl:element name="OuterTunnelIdentity">
  323.                 <xsl:value-of select="nw:GetOuterTunnelIdentity()"/>
  324.               </xsl:element>
  325.             </xsl:if>
  326.  
  327.             <xsl:choose>
  328.               <xsl:when test="nw:GetUsePac()  = 'true'">
  329.                 <UsePac>
  330.                   <Provisioning>
  331.                     <xsl:choose>
  332.                       <xsl:when test="nw:GetPacProvisioningMode()  = 'auto'">
  333.                         <Auto>
  334.                           <xsl:choose>
  335.                             <xsl:when test ="nw:GetProvisioningServerAuthType() = 'serverunauthenticated'">
  336.                               <AllowServerUnauthProvisioning>true</AllowServerUnauthProvisioning>
  337.                             </xsl:when>
  338.                             <xsl:otherwise>
  339.                               <AllowServerUnauthProvisioning>false</AllowServerUnauthProvisioning>
  340.                             </xsl:otherwise>
  341.                           </xsl:choose>
  342.                         </Auto>
  343.                       </xsl:when>
  344.                       <xsl:otherwise>
  345.                         <Manual/>
  346.                       </xsl:otherwise>
  347.                     </xsl:choose>
  348.                   </Provisioning>
  349.                 </UsePac>
  350.               </xsl:when>
  351.               <xsl:otherwise>
  352.                 <DoNotUsePac/>
  353.               </xsl:otherwise>
  354.             </xsl:choose>
  355.  
  356.             <xsl:call-template name="OMServerValidationTemplate"/>
  357.  
  358.             <InnerEapMethod>
  359.               <xsl:element name="EapType">
  360.                 <xsl:value-of select="nw:GetInnerTunnelEapMethod()"/>
  361.               </xsl:element>
  362.               <xsl:element name="Config">
  363.                 <xsl:choose>
  364.                   <xsl:when test="nw:GetInnerTunnelEapMethod()  = '26'">
  365.                     <xsl:call-template name="iEapMschapv2Template" />
  366.                   </xsl:when>
  367.                   <xsl:when test="nw:GetInnerTunnelEapMethod()  = '6'">
  368.                     <xsl:call-template name="iEapGtcTemplate" />
  369.                   </xsl:when>
  370.                   <xsl:when test="nw:GetInnerTunnelEapMethod()  = '13'">
  371.                     <xsl:call-template name="iEapTlsTemplate" />
  372.                   </xsl:when>
  373.                 </xsl:choose>
  374.               </xsl:element>
  375.             </InnerEapMethod>
  376.           </iEapFast>
  377.  
  378.         </xsl:if>
  379.       </xsl:if>
  380.  
  381.       <!--TTLS schema generator-->
  382.       <xsl:if test="nw:GetOuterTunnelEapMethod()  = '21'">
  383.  
  384.         <iEapTTLS  xsi:noNamespaceSchemaLocation="iEapTTLS.xsd" xmlns="" xmlns:n1="http://www.altova.com/samplexml/other-namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  385.           <AllowFastReconnect>
  386.             <xsl:value-of select="nw:GetFastReconnect()"/>
  387.           </AllowFastReconnect>
  388.  
  389.           <ServerValidation>
  390.             <xsl:choose>
  391.               <xsl:when test="nw:GetVerifyServerCertificate()  = 'false'">
  392.                 <Disabled/>
  393.               </xsl:when>
  394.               <xsl:otherwise>
  395.                 <Enabled>
  396.                   <ServerNames>
  397.                     <xsl:value-of select="nw:GetServerNames()"/>
  398.                   </ServerNames>
  399.                   <TrustedRootCAList>
  400.                     <xsl:call-template name="OMRootCALoop">
  401.                       <xsl:with-param name="maxcount" select="nw:GetCategoryValuesCount(nw:GetCategory())"/>
  402.                       <xsl:with-param name="incriment-factor" select="1"/>
  403.                       <xsl:with-param name="initial-value" select="0"/>
  404.                     </xsl:call-template>
  405.                   </TrustedRootCAList>
  406.                 </Enabled>
  407.               </xsl:otherwise>
  408.             </xsl:choose>
  409.  
  410.           </ServerValidation>
  411.           <xsl:if test="nw:GetIdentityPrivacy() = 'true'">
  412.             <OuterTunnelIdentity>
  413.               <xsl:value-of select="nw:GetOuterTunnelIdentity()"/>
  414.             </OuterTunnelIdentity>
  415.           </xsl:if>
  416.           <InnerMethod>
  417.             <MethodName>
  418.               <xsl:value-of select="nw:GetAuthMethod()"/>
  419.             </MethodName>
  420.             <Config>
  421.               <xsl:if test ="nw:GetAuthMethod() = 'MSCHAPV2'">
  422.                 <xsl:call-template name="iEapMschapv2Template" />
  423.               </xsl:if>
  424.             </Config>
  425.           </InnerMethod>
  426.         </iEapTTLS>
  427.  
  428.       </xsl:if>
  429.       
  430.     </xsl:element>
  431.   </xsl:template>
  432.  
  433.  
  434.   <xsl:template name="ConfigBlobTemplate">
  435.     <xsl:element name="ConfigBlob" xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
  436.       <xsl:value-of select="nw:GetConfigBlob()"/>
  437.     </xsl:element> 
  438.   </xsl:template>
  439.  
  440.   <xsl:template name="msEapTlsTemplate">
  441.     <xsl:element name="baseEap:Eap">
  442.       <xsl:element name="baseEap:Type">
  443.         <xsl:value-of select="nw:GetOuterTunnelEapMethod()"/>
  444.       </xsl:element>
  445.       <xsl:element name="eapTls:EapType">
  446.         <xsl:element name="eapTls:CredentialsSource">
  447.           <xsl:choose>
  448.             <xsl:when test="nw:GetCertLocation() = 'SmartCard'">
  449.               <xsl:element name="eapTls:SmartCard"></xsl:element>
  450.             </xsl:when>
  451.             <xsl:otherwise>
  452.               <xsl:element name="eapTls:CertificateStore"></xsl:element>
  453.             </xsl:otherwise>
  454.           </xsl:choose>
  455.         </xsl:element>
  456.         <!--end of CredentialsSource Element-->
  457.         <xsl:if test="nw:GetVerifyServerCertificate()  = 'true'">
  458.           <xsl:element name="eapTls:ServerValidation">
  459.             <xsl:element name="eapTls:DisableUserPromptForServerValidation">true</xsl:element>
  460.             <xsl:if test="nw:GetServerNames()  != ''">
  461.               <xsl:element name="eapTls:ServerNames">
  462.                 <xsl:value-of select="nw:GetServerNames()"/>
  463.               </xsl:element>
  464.             </xsl:if>
  465.             <!--<xsl:element name="eapTls:TrustedRootCA">-->
  466.             <xsl:call-template name="loop">
  467.               <xsl:with-param name="maxcount" select="nw:GetCategoryValuesCount(nw:GetCategory())"/>
  468.               <xsl:with-param name="incriment-factor" select="1"/>
  469.               <xsl:with-param name="initial-value" select="0"/>
  470.             </xsl:call-template>
  471.             <!--</xsl:element>-->
  472.           </xsl:element>
  473.           <!--end of ServerValidation Element-->
  474.         </xsl:if>
  475.  
  476.         <xsl:element name="eapTls:DifferentUsername">
  477.           <xsl:value-of select="nw:GetIdentityPrivacy()"/>
  478.         </xsl:element>
  479.         <!--end of EapType-->
  480.       </xsl:element>
  481.     </xsl:element>
  482.   </xsl:template>
  483.   
  484.   <xsl:template name="OMServerValidationTemplate">
  485.  
  486.     <xsl:if test="nw:GetAuthorID() = 2526">
  487.       <xsl:element name="ServerValidation">
  488.         <xsl:choose>
  489.           <xsl:when test="nw:GetVerifyServerCertificate()  = 'false'">
  490.             <Disabled/>
  491.           </xsl:when>
  492.           <xsl:otherwise>
  493.             <Enabled>
  494.               <ServerNames>
  495.                 <xsl:value-of select="nw:GetServerNames()"/>
  496.               </ServerNames>
  497.               <TrustedRootCAList>
  498.                 <xsl:call-template name="OMRootCALoop">
  499.                   <xsl:with-param name="maxcount" select="nw:GetCategoryValuesCount(nw:GetCategory())"/>
  500.                   <xsl:with-param name="incriment-factor" select="1"/>
  501.                   <xsl:with-param name="initial-value" select="0"/>
  502.                 </xsl:call-template>
  503.               </TrustedRootCAList>
  504.             </Enabled>
  505.           </xsl:otherwise>
  506.         </xsl:choose>
  507.       </xsl:element>
  508.     </xsl:if>
  509.   </xsl:template>
  510.  
  511.  
  512.   <xsl:template name="iEapGtcTemplate">
  513.     <iEapGtc xsi:noNamespaceSchemaLocation="iEapGtc.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  514.       <AuthorId>
  515.         <xsl:value-of select="nw:GetAuthorID()" />
  516.       </AuthorId>
  517.       <TokenSource>ExternalSource</TokenSource>
  518.     </iEapGtc>
  519.   </xsl:template>
  520.  
  521.   <xsl:template name="iEapMschapv2Template">
  522.  
  523.     <iEapMschapv2 xsi:noNamespaceSchemaLocation="iEapMschapv2.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  524.       <AuthorId>
  525.         <xsl:value-of select="nw:GetAuthorID()" />
  526.       </AuthorId>
  527.  
  528.       <UseWinLogon>
  529.         <xsl:value-of select="nw:GetWindowsLogonCreds()"/>
  530.       </UseWinLogon>
  531.     </iEapMschapv2>
  532.   </xsl:template>
  533.  
  534.   <xsl:template name="iEapTlsTemplate">
  535.     <iEapTls xsi:noNamespaceSchemaLocation="iEapTls.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  536.       <!--MachineIdentity, this element will be written only if auth mode is machine or machineOrUser-->
  537.       <xsl:if test="nw:GetAuthMode() = 'machine' or nw:GetAuthMode() = 'machineOrUser'">
  538.         <xsl:element name ="MachineIdentity">
  539.           <xsl:value-of select="nw:GetInnerTunnelIdentity()"/>
  540.         </xsl:element>
  541.       </xsl:if>
  542.       <!--Certificate location-->
  543.       <xsl:element name="CredentialsSource">
  544.         <xsl:choose>
  545.           <xsl:when test="nw:GetCertLocation() = 'SmartCard'">SmartCard</xsl:when>
  546.           <xsl:otherwise>CertificateStore</xsl:otherwise>
  547.         </xsl:choose>
  548.       </xsl:element>
  549.       <!--Server validation-->
  550.       <xsl:call-template name="OMServerValidationTemplate"/>
  551.  
  552.     </iEapTls>
  553.  
  554.  
  555.   </xsl:template>
  556.   <xsl:template name="loop">
  557.     <xsl:param name="maxcount"/>
  558.     <xsl:param name="incriment-factor"/>
  559.     <xsl:param name="initial-value"/>
  560.  
  561.     <xsl:if test="$initial-value< $maxcount">
  562.       <xsl:if test="nw:GetOuterTunnelEapMethod() = '13'">
  563.         <xsl:element name="eapTls:TrustedRootCA">
  564.           <xsl:value-of select="nw:GetCategoryNextValue()"/>
  565.         </xsl:element>
  566.       </xsl:if>
  567.       <xsl:if test="nw:GetOuterTunnelEapMethod() = '25'">
  568.         <xsl:if test="nw:GetAuthMethod()  = ''">
  569.           <xsl:element name="msPeap:TrustedRootCA">
  570.             <xsl:value-of select="nw:GetCategoryNextValue()"/>
  571.           </xsl:element>
  572.         </xsl:if>
  573.         <xsl:if test="nw:GetAuthMethod()  = 'EAP'">
  574.           <xsl:element name="eapttls:Certificate">
  575.             <xsl:value-of select="nw:GetCategoryNextValue()"/>
  576.           </xsl:element>
  577.         </xsl:if>
  578.       </xsl:if>
  579.       <xsl:if test="nw:GetOuterTunnelEapMethod() = '21'">
  580.         <xsl:element name="eapttls:Certificate">
  581.           <xsl:value-of select="nw:GetCategoryNextValue()"/>
  582.         </xsl:element>
  583.       </xsl:if>
  584.       <xsl:if test="nw:GetOuterTunnelEapMethod() = '25' and nw:GetAuthorID()=2526">
  585.         <xsl:element name="TrustedRootCA">
  586.           <xsl:value-of select="nw:GetCategoryNextValue()"/>
  587.         </xsl:element>
  588.       </xsl:if>
  589.       <xsl:call-template name="loop">
  590.         <xsl:with-param name="maxcount" select="$maxcount"/>
  591.         <xsl:with-param name="initial-value" select="$initial-value+$incriment-factor"/>
  592.         <xsl:with-param name="incriment-factor" select="$incriment-factor"/>
  593.       </xsl:call-template>
  594.     </xsl:if>
  595.  
  596.   </xsl:template>
  597.  
  598.   <xsl:template name="OMRootCALoop">
  599.     <xsl:param name="maxcount"/>
  600.     <xsl:param name="incriment-factor"/>
  601.     <xsl:param name="initial-value"/>
  602.  
  603.     <xsl:if test="$initial-value< $maxcount">
  604.       <xsl:if test="nw:GetAuthorID()=2526">
  605.         <xsl:element name="TrustedRootCA">
  606.           <xsl:value-of select="nw:GetCategoryNextValue()"/>
  607.         </xsl:element>
  608.       </xsl:if>
  609.       <xsl:call-template name="OMRootCALoop">
  610.         <xsl:with-param name="maxcount" select="$maxcount"/>
  611.         <xsl:with-param name="initial-value" select="$initial-value+$incriment-factor"/>
  612.         <xsl:with-param name="incriment-factor" select="$incriment-factor"/>
  613.       </xsl:call-template>
  614.     </xsl:if>
  615.  
  616.   </xsl:template>
  617.  
  618.   <!-- Identity copy-->
  619.   <xsl:template match='@*|node()' >
  620.     <xsl:copy>
  621.       <xsl:apply-templates select="@*|node()"/>
  622.     </xsl:copy>
  623.   </xsl:template>
  624.  
  625. </xsl:stylesheet>
  626.